<?php
	try {
	    
		$includeModels = array('BaseModel.class','Operacao.class');
		include('../../model/BaseModel.class.php');
		include('../../model/Operacao.class.php');

		$contratoid = NULL;
		$submitUrl = NULL;
		
		$auth = array(
						array('action'=> 'Encaminhar para o Gabinete', 'operacao'=>Operacao::CONTRATO_ENCAMINHARPARANUCLEOCENTRAL),						
						array('action'=> 'Confirmar Cadastro', 'operacao'=>Operacao::CONTRATO_APROVARREPROVAR),
						array('action'=> 'Recusar Cadastro', 'operacao'=>Operacao::CONTRATO_APROVARREPROVAR),
						array('action'=> 'Salvar', 'operacao'=>Operacao::CONTRATO_CADASTRAR),
						array('action'=> 'Excluir', 'operacao'=>Operacao::CONTRATO_CADASTRAR)
					 );
		
		require_once '../../controller/controller.inc.php';
		
		$operacoes = array();
		$operacoes[0] = Operacao::CONTRATO_CADASTRAR;
		$operacoes[1] = Operacao::CONTRATO_VISUALIZAR;
		
		//$usuario->isAuthorizedViewOperacao( $operacoes );
		FluxoContrato::isVisible($operacoes);		
				
		
		# Classes para indicar a aba ativa
		$classeContratos = 'class="ativa"';
		$classeVagas = '';
		$classeLotacoes = '';
		$classeSalarios = '';
		$classeVagasLotacoes = '';
		$classeAditivos = '';
		$classeArquivos = '';
		
	    $id = ( isset ( $_GET['id']) ) ? $_GET['id'] : null;
	    
	    $contrato = new Contrato($id); 
	    
	    if (FluxoContrato::isEditable('contratos', $contrato)) {
	    	$readOnly = '';
	    }
	    else {
	    	$readOnly = 'disabled="disabled"';
	    }
	    
//	    $readOnly = ( !$usuario->isAuthorized( Operacao::CONTRATO_CADASTRAR ) AND $usuario->isAuthorized( Operacao::CONTRATO_VISUALIZAR ) ) ? 'disabled="disabled"' : '';
//			    
//	    if ( $contrato->isBloqueado() ) $readOnly = 'disabled="disabled"';
//
//	    if ( $contrato->statusid == Status::Contrato_EncaminhadoGabinete )
//	    	$readOnly = 'disabled="disabled"';
	    
		if ( $contrato->tipocontratoid == NULL ){
	    	$contrato->tipocontratoid = 2;
	    }
	      
	    if ( !$id ){
	    	$contrato->datainicio = date('d/m/Y');
	    	$contrato->datafim = date('d/m/Y');
	    }
	    
	    if ($contrato->isAditivo()) {
    	    $motivoAditivo = new MotivoAditivo();
    		$result = $motivoAditivo->listar(array('orderBy' => 'motivoaditivoid'));
    	    $listaMotivosAditivo = (pg_num_rows($result ) > 0) ? pg_fetch_all($result) : NULL;
    	    
    	    if ($listaMotivosAditivo) {
    	        $justificativaAditivo = new JustificativaAditivo();
    	        $result = $justificativaAditivo->listar(array('precondicao'=>'contratoid = ' . $contrato->contratoid));
    	        $listaMotivosAditivoContrato = (pg_num_rows($result ) > 0) ? pg_fetch_all($result) : NULL;
    	        if ($listaMotivosAditivoContrato) {
        	        for ($i = 0; $i < count($listaMotivosAditivo); $i++) {
        	            $listaMotivosAditivo[$i]['checked'] = FALSE;
        	            foreach ($listaMotivosAditivoContrato as $motivoContrato) {
        	                if ($listaMotivosAditivo[$i]['motivoaditivoid'] == $motivoContrato['motivoaditivoid']) {
        	                    $listaMotivosAditivo[$i]['checked'] = TRUE;
        	                }
        	                
        	            }
        	        }
        	    }
        	    else {
        	        for ($i = 0; $i < count($listaMotivosAditivo); $i++) {
        	            $listaMotivosAditivo[$i]['checked'] = FALSE;
        	        }
        	    }
    	    }
	    }
	    
	    $contratoid = $id;

	    require( '../../controller/contratos/helper_situacao.php' );
	    
        if (isset ($_POST["btnAcao"]))
	    {
	        switch($_POST["btnAcao"])
	        {
	            case "Salvar":
	            	
	            	$contrato = new Contrato( $_POST['id'] );

	            	if ($contrato->isBloqueado() == TRUE) {
	            		throw new Exception(TMensagens::getContratoBloqueado());
	            	}
	            	
	            	if ($contrato->isAditivo()) {
	            	    $_POST['chkMotivosAditivo'] = (isset($_POST['chkMotivosAditivo'])) ? $_POST['chkMotivosAditivo'] : array();
	            	    $justificativasAditivo = $_POST['chkMotivosAditivo'];
	            	    unset($_POST['chkMotivosAditivo']);
	            	}
	            	else {
	            	    $justificativasAditivo = NULL;
	            	}
	            	
        			TUtils::preencherObjeto( $contrato, $_POST );
        			
        			if ($contrato->contratoid == NULL) {
	                    FluxoContrato::inserir($contrato);
	                }
        			else {
        			    FluxoContrato::alterar($contrato, $justificativasAditivo);
        			}
        			
	                $message = ($id) ? 'alteracao' : 'insercao';
	                
	                $id = $contrato->contratoid;
	                
	                break;
	            case "Excluir":
	                
	                header( 'Location: pesquisar.php?method=excluir&id=' . $_POST['id']);
	                break;
	        }
	        
	        header( 'Location: cadastrar.php?message=' . $message . '&id=' . $id);
	        
	    }
	    
	    $contratoid = $id;
	    
	    
	    	
	    $submitUrl = basename(__FILE__);
	    if ( $contratoid ){
	        $submitUrl .= '?id=' . $contratoid;
	    }
		
	} catch(exception $e){
		
		$erro = $e->getMessage();
		
	}
	
	function is_authorized( $operacao ){
		
		global $contrato, $usuario, $pfcid;
		
		return $contrato->isAuthorized( $operacao );
		
	}
?>